package com.yf.compareYFJX.test;

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import org.junit.Test;

import java.util.ArrayList;
import java.util.List;

public class EasyExcelTEST {
    public static void main(String[] args) {
//        // 写法1
//        String fileName = "F:\\12.xlsx";
//        // 这里 需要指定写用哪个class去写，然后写到第一个sheet，名字为模板 然后文件流会自动关闭
//        // 如果这里想使用03 则 传入excelType参数即可
//        EasyExcel.write(fileName, DemoData.class).sheet("写入方法一").doWrite(data());
        // 写法2，方法二需要手动关闭流

        String fileName = "F:\\112.xlsx";
        // 这里 需要指定写用哪个class去写
        ExcelWriter excelWriter = EasyExcel.write(fileName, DemoData.class).build();
        WriteSheet writeSheet = EasyExcel.writerSheet("写入方法二").build();
        for (int i = 1; i < 3; i++) {
            excelWriter.write(data(i), writeSheet);
            /// 千万别忘记finish 会帮忙关闭流
        }
        excelWriter.finish();
    }

    private static List<DemoData> data(int i) {
        List<DemoData> list = new ArrayList<DemoData>();
//        for (int i = count; i < 10; i++) {
            DemoData data = new DemoData();
            data.setSno(i);
            data.setSname("张三" + i);
            data.setChannelName("C" + i);
            list.add(data);
//        }
        return list;
    }

    @Test
    public void repeatedWrite3() {
        // 方法3 如果写到不同的sheet 不同的对象

        String fileName = "F:\\EEtest.xlsx";
        ExcelWriter excelWriter = null;
        try {
            // 这里 指定文件
            excelWriter = EasyExcel.write(fileName).build();
            //第一个Sheet 每次都要创建writeSheet 这里注意必须指定sheetNo 而且sheetName必须不一样。这里注意DemoData.class
            WriteSheet writeSheet = EasyExcel.writerSheet(1, "模板" + 1).head(DemoData.class).build();
            List<DemoData> data = data(1);
            excelWriter.write(data, writeSheet);

            //第二个Sheet 每次都要创建writeSheet 这里注意必须指定sheetNo 而且sheetName必须不一样。
            WriteSheet writeSheet2 = EasyExcel.writerSheet(2, "模板" + 2).head(DemoData.class).build();
            List<DemoData> data2 = data(2);
            excelWriter.write(data2, writeSheet2);
        } finally {
            // 千万别忘记finish 会帮忙关闭流
            if (excelWriter != null) {
                excelWriter.finish();
            }
        }

    }

}
